<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>index</title>
</head>
<body>
<script>
  /*class内使用static修饰的属性和方法本质上和在方法对象身上定义一个属性没什么不同*/


  /*
  * 注意访问静态属性也是使用this 和访问实例对象的属性一样 由于静态函数中是由类对象调用的所以静态方法中的this是类对象所以可以访问到静态属性
  * 实例方法中的属性是实例调用的，所以实例方法中的this可以访问到构造函数中定义的属性
  * */
  class User {
    static score ='NAME'
    static  getName(){
      return this.score
    }
    constructor(age) {
      this.age = age
    }
  }

  let user = new User(1)
  console.log(User.getName());

  /*
  * 静态属性和方法都是可以继承的  为什么可以继承呢？
  * 其实子类继承父类的时候干了两件事
  *  1. 子类.prototype = 父类对象 (子类实例对象.__proto__.__prototype__ = 父类.prototype)
  *
  *  2. 子类类对象.__proto__ = 父类类对象(而在此之前类类对象.__proto__指向的是Function.prototype,
  *   因为一切函数都可以使用 new Function创建)
  * */


</script>
</body>
</html>